home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 10 / AACD 10.iso / AACD / Games / MAME / src / sound / msm5205.h < prev    next >
C/C++ Source or Header  |  1999-06-07  |  2KB  |  46 lines

  1. #ifndef MSM5205_H
  2. #define MSM5205_H
  3.  
  4. /* an interface for the MSM5205 and similar chips */
  5.  
  6. #define MAX_MSM5205 4
  7.  
  8. /* priscaler selector defines   */
  9. /* default master clock is 384KHz */
  10. #define MSM5205_S96_3B 0     /* prsicaler 1/96(4KHz) , data 3bit */
  11. #define MSM5205_S48_3B 1     /* prsicaler 1/48(8KHz) , data 3bit */
  12. #define MSM5205_S64_3B 2     /* prsicaler 1/64(6KHz) , data 3bit */
  13. #define MSM5205_SEX_3B 3     /* VCLK slave mode      , data 3bit */
  14. #define MSM5205_S96_4B 4     /* prsicaler 1/96(4KHz) , data 4bit */
  15. #define MSM5205_S48_4B 5     /* prsicaler 1/48(8KHz) , data 4bit */
  16. #define MSM5205_S64_4B 6     /* prsicaler 1/64(6KHz) , data 4bit */
  17. #define MSM5205_SEX_4B 7     /* VCLK slave mode      , data 4bit */
  18.  
  19. struct MSM5205interface
  20. {
  21.     int num;                       /* total number of chips                 */
  22.     int baseclock;                 /* master clock (default = 384KHz)       */
  23.     void (*vclk_interrupt[MAX_MSM5205])(int);   /* VCLK interrupt callback  */
  24.     int select[MAX_MSM5205];       /* prescaler / bit width selector        */
  25.     int mixing_level[MAX_MSM5205]; /* master volume                         */
  26. };
  27.  
  28. int MSM5205_sh_start (const struct MachineSound *msound);
  29. void MSM5205_sh_stop (void);   /* empty this function */
  30. void MSM5205_sh_update (void); /* empty this function */
  31. void MSM5205_sh_reset (void);
  32.  
  33. /* reset signal should keep for 2cycle of VCLK      */
  34. void MSM5205_reset_w (int num, int reset);
  35. /* adpcmata is latched after vclk_interrupt callback */
  36. void MSM5205_data_w (int num, int data);
  37. /* VCLK slave mode option                                        */
  38. /* if VCLK and reset or data is changed at the same time,        */
  39. /* Call MSM5205_vclk_w after MSM5205_data_w and MSM5205_reset_w. */
  40. void MSM5205_vclk_w (int num, int reset);
  41. /* option , selected pin seletor */
  42. void MSM5205_selector_w (int num, int _select);
  43. void MSM5205_bitwidth_w (int num, int bitwidth);
  44.  
  45. #endif
  46.